Some network-based computing service providers allow customers to purchase and utilize computing resources, such as virtual machine instances, on a permanent or as-needed basis. In addition to virtual machine instances, such computing service providers typically allow customers to purchase and utilize other types of computing resources. For example, customers might be permitted to purchase access to and use of file and block data storage resources, database resources, networking resources, and other types of computing resources. Utilizing these computing resources as building blocks, customers of such a network-based computing service can create custom solutions that provide various types of functionality, such as application hosting, backup and storage, content delivery, World Wide Web (“Web”) hosting, enterprise information technology (“IT”) solutions, database services, and others.
It can sometimes be difficult for customers, or potential customers, of computing service providers such as those described above to define, view or make changes to the infrastructure of an application. For example, a significant amount of manual technical effort may be required to define the resources to be utilized by an application as well as the interactions between resources within the network-based computing service. The technical effort required to define an infrastructure that is provisioned in a network-based computing service may be costly and time consuming and might, therefore, present a significant barrier to the utilization of network-based computing services to certain types of customers.